package br.com.Bolao.application.controller;

import org.jboss.seam.annotations.In;
import org.jboss.seam.faces.FacesMessages;
import org.jboss.seam.international.StatusMessage.Severity;

/**
 *
 * @author frederico.cruz
 */
public class BaseController {

    @In
    private FacesMessages facesMessages;

/**
     * Adiciona uma mensagem ao context do JSF para exibição na tela (INFO).
     * @param severidade Severidade da mensagem
     * @param mensagem Mensagem a ser exibida
     */
    protected void adicionarMensagemInformacao(String mensagem) {
        facesMessages.addFromResourceBundle(Severity.INFO, mensagem);
    }

    /**
     * Adiciona uma mensagem ao context do JSF para exibição na tela (INFO).
     * @param idMensagem Identificador da mensagem no ResourceBundle
     * @param objeto Objeto a ser incluido na mensagem
     */
    protected void adicionarMensagemInformacao(String idMensagem, Object objeto) {
        facesMessages.addFromResourceBundle(Severity.INFO, idMensagem, objeto);
    }

    /**
     * Adiciona uma mensagem ao context do JSF para exibição na tela (ERROR).
     * <br>
     * @param mensagem Mensagem a ser exibida
     */
    protected void adicionarMensagemErro(String mensagem) {
        facesMessages.addFromResourceBundle(Severity.ERROR, mensagem);
    }

    /**
     * Adiciona uma mensagem ao context do JSF para exibição na tela (ERROR).
     * <br>
     * @param idMensagem Identificador da mensagem no ResourceBundle
     * @param objeto Objeto a ser incluido na mensagem
     */
    protected void adicionarMensagemErro(String idMensagem, Object objeto, Exception e) {
        facesMessages.addFromResourceBundle(Severity.ERROR, idMensagem, objeto, e);
    }

    /**
     * Adiciona uma mensagem ao context do JSF para exibição na tela.
     * <br>
     * @param severidade Severidade da mensagem
     * @param mensagem Mensagem a ser exibida
     */
    protected void adicionarMensagem(Severity severidade, String mensagem) {
        facesMessages.add(severidade, mensagem);
    }
}
